<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>Bitset Operators</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">C++ Bitsets</a> &gt; <a href=
    "biset_operators.html">Bitset Operators</a>
  </div>

  <div class="name-format">
    Bitset Operators
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;bitset&gt;
  !=, ==, &amp;=, ^=, |=, ~, &lt;&lt;=, &gt;&gt;=, []
</pre>

  <p>These operators all work with bitsets. They can be described as
  follows:</p>

  <ul>
    <li>!= returns true if the two bitsets are not equal.</li>

    <li>== returns true if the two bitsets are equal.</li>

    <li>&amp;= performs the AND operation on the two bitsets.</li>

    <li>^= performs the XOR operation on the two bitsets.</li>

    <li>|= performs the OR operation on the two bitsets.</li>

    <li>~ reverses the bitset (same as calling flip())</li>

    <li>&lt;&lt;= shifts the bitset to the left</li>

    <li>&gt;&gt;= shifts the bitset to the right</li>

    <li>[x] returns a reference to the xth bit in the bitset.</li>
  </ul>

  <p>For example, the following code creates a bitset and shifts it to
  the left 4 places:</p>
  <pre class="example-code">
 // create a bitset out of a number
 bitset&lt;8&gt; bs2( (long) 131 );
 cout &lt;&lt; &quot;bs2 is &quot; &lt;&lt; bs2 &lt;&lt; endl;
 // shift the bitset to the left by 4 digits
 bs2 &lt;&lt;= 4;
 cout &lt;&lt; &quot;now bs2 is &quot; &lt;&lt; bs2 &lt;&lt; endl;              
</pre>

  <p>When the above code is run, it displays:</p>
  <pre class="example-code">
 bs2 is 10000011
 now bs2 is 00110000            
</pre>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
